package com.gitee.magic.core.valid.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 格式判断
 * @author zhenyao
 *
 */
@Target({ElementType.FIELD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Format {
	public enum FormatType {
		/**
		 * 位
		 */
		BIT,
		/**
		 * 电话号码
		 */
		PHONE,
		/**
		 * 手机号码
		 */
		MOBILE,
		/**
		 * 电子邮件
		 */
		MAIL,
		/**
		 * BASE64格式
		 */
		BASE64,
		/**
		 * MD5格式
		 */
		MD5,
		/**
		 * SHA1格式
		 */
		SHA1,
		/**
		 * IP地址
		 */
		IP,
		/**
		 * MAC地址
		 */
		MAC,
		/**
		 * 是否为中文
		 */
		CHINESE,
		/**
		 * 短整型
		 */
		SHORT,
		/**
		 * 整型
		 */
		INTEGER,
		/**
		 * 长整型
		 */
		LONG,
		/**
		 * 浮点数
		 */
		FLOAT,
		/**
		 * Double
		 */
		DOUBLE,
		/**
		 * 是否为数字
		 */
		NUMBER,
		/**
		 * 是否为数字有小数
		 */
		DECIMAL,
		/**
		 * 大于等于零的数字
		 */
		GE_ZERO,
		/**
		 * 大于零的数字
		 */
		GT_ZERO,
		/**
		 * 布尔类型
		 */
		BOOLEAN,
		/**
		 * JSON对象
		 */
		JSONObject,
		/**
		 * JSON对象
		 */
		JSON_OBJECT,
		/**
		 * JSON数组
		 */
		JSONArray,
		/**
		 * JSON数组
		 */
		JSON_ARRAY,
		/**
		 * [1,2,3,4,5,6,7,8,9]
		 * List<Long>类型检测
		 */
		JSONArrayLong,
		/**
		 * [1,2,3,4,5,6,7,8,9]
		 * List<Long>类型检测
		 */
		JSON_ARRAY_LONG,
		/**
		 * 身份证
		 */
		IDCARD
	}
	
	FormatType type();
	String message() default "";
}
